import { RMIProxyObject } from "../../Engine/RMI/RMIProxyObject";
import { IBusinessPrx } from "./IBusinessPrx";
import { AMI_IBusiness_doApply } from "./AMI_IBusiness_doApply";
import { SEntityId } from "../Public/SEntityId";
import { SerializeStream } from "../../Framework/Serialize/SerializeStream";
import { Outgoing } from "../../Engine/RMI/Outgoing";
import { AMI_IBusiness_doOperation } from "./AMI_IBusiness_doOperation";
import { EBusinessOperation } from "../Public/EBusinessOperation";
import { AMI_IBusiness_updateItem } from "./AMI_IBusiness_updateItem";
import { AMI_IBusiness_updateMoney } from "./AMI_IBusiness_updateMoney";
import { EPrictUnit } from "../Public/EPrictUnit";
type int = number;
//class IBusinessPrxHelper
    
    export  class IBusinessPrxHelper extends RMIProxyObject implements IBusinessPrx
    {
        constructor()
        {
            
            super();name = "IBusiness";
            return;
        }

        public doApply_async(arg1: AMI_IBusiness_doApply, arg2: SEntityId): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("doApply");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public doOperation_async(arg1: AMI_IBusiness_doOperation, arg2: EBusinessOperation, arg3: string): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("doOperation");
            var loc3=new SerializeStream();
            arg2.__write(loc3);
            loc3.writeString(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public updateItem_async(arg1: AMI_IBusiness_updateItem, arg2: string, arg3: string, arg4: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("updateItem");
            var loc3;
            (loc3 = new SerializeStream()).writeString(arg2);
            loc3.writeString(arg3);
            loc3.writeInt(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public updateMoney_async(arg1: AMI_IBusiness_updateMoney, arg2: string, arg3: EPrictUnit, arg4: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("updateMoney");
            var loc3;
            (loc3 = new SerializeStream()).writeString(arg2);
            arg3.__write(loc3);
            loc3.writeInt(arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public static /* const */NAME: string="Message.Game.IBusiness";
    }
